<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>

	
	<script src="../lib/jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
	<script>

		//闭包就是能够读取其他函数内部变量的函数。
		//作用：一个是前面提到的可以读取函数内部的变量，另一个就是让这些变量的值始终保持在内存中。

		/*function f1(){
　　　　	var n=999;
	　　}
		f1();
	　　alert(n);  //error*/

		//函数f2就被包括在函数f1内部，这时f1内部的所有局部变量，对f2都是可见的。但是反过来就不行，f2内部的局部变量，对f1就是不可见的。这就是Javascript语言特有的"链式作用域"结构（chain scope），子对象会一级一级地向上寻找所有父对象的变量。所以，父对象的所有变量，对子对象都是可见的，反之则不成立。
		/*function f1(){

　　　　　　var n=999;

　　　　　　function f2(){

　　　　　  	alert(n); // 999

　　　　　　}
			f2();

　　　　}
		f1();*/



		/*function f1(){

		　　var n=999;

		　　function f2(){

		　　　　alert(n); 

		　　}

		　　return f2;

		}

		var result=f1();

		result(); // 999*/



		/*function f1(){

　　　　　　var n=999;

　　　　　　nAdd=function(){

				n+=1

			}

　　　　　　function f2(){

　　　　　　    alert(n);

　　　　　　}

　　　　　　return f2;

	　　};

	　　var result=f1();
	　　result(); // 999
　　　　nAdd();
		result(); //1000*/

		var name = "The Window";
	　　var object = {
	　　　　name : "My Object",
	　　　　getNameFunc : function(){
				var that = this;
	　　　　　　return function(){
	　　　　　　　　return that.name;
	　　　　　　};
	　　　　}
	　　};
	　　alert(object.getNameFunc()());
	</script>
	
</body>
</html>
